interface dropdownMenuModule {
  // 显示文本
  label: string;
  // icon
  icon?: string;
}
interface optionsModule {
  // 显示文本
  label: string;
  // 按钮尺寸
  size?: string;
  // 按钮类型
  type?: string;
  // 是否禁用按钮
  disabled?: boolean | Function;
  // 按钮权限函数
  hasPermission?: Function;
  // 下拉菜单触发方式 hover, click, contextmenu
  trigger?: string;
  // 下拉菜单,下拉列表
  dropdownMenu?: Array<dropdownMenuModule>;
}

interface filtersModule {
  // 显示文本
  label: string;
  id: string | number;
}

interface filterConfigModule {
  // 出现位置
  placement?: string;
  width?: string | number;
  // 触发方式 hover, click, focus, manual
  trigger?: string;
  // 是否显示搜索输入框
  showInput?: boolean;
  // 选项列表最大高度
  listMaxHeight?: string;
  // icon
  icon?: string;
  // 激活icon
  activeIcon?: string;
}

export interface ColumnsModule {
  label: string;
  prop: string;
  width?: string | number;
  align?: string;
  // 排序
  sortable?: boolean;
  // 固定列
  fixed?: string | boolean;
  // 不显示tooltip
  unShowTooltip?: boolean;
  // 操作栏按钮
  options?: Array<optionsModule>;
  // 筛选条件数组
  filters?: Array<filtersModule>
  // 条件筛选弹出框配置
  filterConfig?: filterConfigModule;
  // 转换显示内容
  transform?: Function;
  // 元素类型 text/img
  elementType?: string;
  // 类名
  class?: Function;
  // 行内样式
  style?: Function;
};

export type ColumnsType = Array<ColumnsModule>;